package oj;

public class LC202 {
    public boolean isHappy(int n) {
        //本质上是判断链表是否有环（可以得到一个隐式的链表）
        //可以使用快慢指针来判断链表是否有环
        int slow=n;
        int fast=getNext(n);
        while(slow!=fast){
            slow=getNext(slow);
            fast=getNext(getNext(fast));
        }
        return slow==1;
    }
    private int getNext(int n){
        int sum=0;
        while(n!=0){
            int a=n%10;
            sum+=a*a;
            n/=10;
        }
        return sum;
    }
}
